import Request from "luch-request";
import CONFIG from "@/config";

const http = new Request({
  baseURL: CONFIG.BASE_URL,
  timeout: 6 * 10 * 1000,
});

http.interceptors.request.use(
  async (config) => {
    config.header = {
      a: 1, // 演示用
      b: 2, // 演示用
    };
    return config;
  },
  (config) => {
    console.error(config);
  }
);
http.interceptors.response.use(
  async (result) => {
    const hideErrorMessage = _.get(result, "config.custom.hideErrorMessage");
    const response = result.data;
    if (response.code === 0) {
      return response.data;
    }
    // 错误 并且message 有数据才弹出
    if (response.message && !hideErrorMessage) {
      uni.showToast({ icon: "none", title: response.message });
    }
    // 抛出异常 业务逻辑单独做处理
    return Promise.reject(response);
  },
  (config) => {
    uni.showToast({
      icon: "none",
      title: "服务器异常,请稍后重试",
    });
    console.error(config);
    return Promise.reject(config);
  }
);

function request(params) {
  return http.request(params);
}

export default request;
